/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package SessionBeans;

import Entidades.Pedido;
import java.util.List;
import javax.ejb.LocalBean;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.TypedQuery;

/**
 *
 * @author Joni
 */
@Stateless
@LocalBean
public class PedidosDAO {

    @PersistenceContext(name = "Tienda_asalineroPU")
    private EntityManager em;

    public List<Pedido> getPedidos() {
        return getPedidos(null, null);
    }

    public Pedido getPedido(int id) {
        return em.find(Pedido.class, id);
    }

    public Pedido getPedidoNombre(String nombre) {
        return em.find(Pedido.class, nombre);
    }

    public Pedido getUltimoPedido() {
        return this.getPedidos(null, "p.id DESC").get(0);
    }

    public void insertar(Pedido pedido) {
        em.persist(pedido);
    }

    public void actualizar(Pedido p) {
        em.merge(p);
    }

    public void borrar(Pedido p) {
        em.remove(em.merge(p));
    }

    public List<Pedido> getPedidos(String where, String order) {
        String sql = "SELECT p FROM Pedido p ";
        if (where != null) {
            sql += " WHERE " + where;
        }
        if (order != null) {
            sql += " ORDER BY " + order;
        }
        TypedQuery<Pedido> query = em.createQuery(sql, Pedido.class);
        return query.getResultList();
    }
    
    
    public List<Pedido> getPedidosAdmin(String where, String order) {
        String sql = "SELECT p FROM Pedido p WHERE p.estado <> 0";
        if (where != null) {
            sql += " AND " + where;
        }
        if (order != null) {
            sql += " ORDER BY " + order;
        }
        TypedQuery<Pedido> query = em.createQuery(sql, Pedido.class);
        return query.getResultList();
    }
    
}